// 测试加入活动接口（包含联系方式和昵称）
const axios = require('axios');

// 配置
const BASE_URL = 'http://localhost:3000/api';
const AUTH_TOKEN = 'your-jwt-token-here'; // 需要替换为有效的JWT令牌
const ACTIVITY_ID = '1'; // 需要替换为有效的活动ID

// 设置请求头
const headers = {
  'Content-Type': 'application/json',
  'Authorization': `Bearer ${AUTH_TOKEN}`
};

// 测试数据
const testData = {
  contactInfo: '13800138000', // 联系方式
  joinNickname: '小明' // 昵称
};

// 测试加入活动接口
async function testJoinActivity() {
  try {
    console.log('测试加入活动接口...');
    console.log('请求数据:', JSON.stringify(testData, null, 2));
    
    const response = await axios.post(
      `${BASE_URL}/activities/${ACTIVITY_ID}/join`,
      testData,
      { headers }
    );
    
    console.log('响应状态:', response.status);
    console.log('响应数据:', JSON.stringify(response.data, null, 2));
    
    if (response.data.success) {
      console.log('✅ 成功加入活动');
    } else {
      console.log('❌ 加入活动失败:', response.data.message);
    }
  } catch (error) {
    console.error('❌ 请求失败:', error.response?.data || error.message);
  }
}

// 测试获取待审核参与者接口
async function testGetPendingParticipants() {
  try {
    console.log('\n测试获取待审核参与者接口...');
    
    const response = await axios.get(
      `${BASE_URL}/activities/${ACTIVITY_ID}/pending-participants`,
      { headers }
    );
    
    console.log('响应状态:', response.status);
    console.log('响应数据:', JSON.stringify(response.data, null, 2));
    
    if (response.data.success) {
      console.log('✅ 成功获取待审核参与者');
      console.log('待审核参与者数量:', response.data.data.pendingParticipants.length);
      
      // 检查是否包含联系方式和昵称
      if (response.data.data.pendingParticipants.length > 0) {
        const participant = response.data.data.pendingParticipants[0];
        console.log('第一个参与者的昵称:', participant.nickname);
        console.log('第一个参与者的联系方式:', participant.contactInfo);
        console.log('第一个参与者的加入昵称:', participant.joinNickname);
      }
    } else {
      console.log('❌ 获取待审核参与者失败:', response.data.message);
    }
  } catch (error) {
    console.error('❌ 请求失败:', error.response?.data || error.message);
  }
}

// 测试获取活动详情接口
async function testGetActivityDetails() {
  try {
    console.log('\n测试获取活动详情接口...');
    
    const response = await axios.get(
      `${BASE_URL}/activities/${ACTIVITY_ID}`,
      { headers }
    );
    
    console.log('响应状态:', response.status);
    
    if (response.data.success) {
      console.log('✅ 成功获取活动详情');
      
      // 检查参与者列表中是否包含联系方式和昵称
      const participants = response.data.data.activity.participants;
      console.log('参与者数量:', participants.length);
      
      if (participants.length > 0) {
        const participant = participants[0];
        console.log('第一个参与者的昵称:', participant.nickname);
        console.log('第一个参与者的状态:', participant.parkpart_activity_participants?.status);
        console.log('第一个参与者的联系方式:', participant.parkpart_activity_participants?.contactInfo);
        console.log('第一个参与者的加入昵称:', participant.parkpart_activity_participants?.joinNickname);
      }
    } else {
      console.log('❌ 获取活动详情失败:', response.data.message);
    }
  } catch (error) {
    console.error('❌ 请求失败:', error.response?.data || error.message);
  }
}

// 执行测试
async function runTests() {
  console.log('开始测试活动接口（包含联系方式和昵称）...\n');
  
  await testJoinActivity();
  await testGetPendingParticipants();
  await testGetActivityDetails();
  
  console.log('\n测试完成');
}

// 运行测试
runTests();